"use strict";
$(document).ready(function() {

  var $table = $('#racks').DataTable({
    bProcessing : true,
    bServerSide : true,
    sPaginationType : 'full_numbers',
    scrollX: true,
    oLanguage : {
      sLengthMenu : '每页显示 _MENU_ 条',
      sInfo : '第 _START_ -  _END_ 条，共 _TOTAL_ 条',
      sInfoFiltered : '',
      sInfoEmpty: '没有数据',
      sZeroRecords : '没有数据',      
      sProcessing : '正在加载数据...',
      oPaginate : {
        sFirst : '首页',
        sPrevious : '前一页',
        sNext : '后一页',
        sLast : '末页'
      },
      sSearch : '检索',
      sSearchPlaceholder : '输入货架编号'
    },
    columns : [ {
      data : 'id'
    }, {
      data : 'color',
      render: function( data, type, row, meta ) {
        var v = $.trim(data);
        if(v == '') {
          return '';
        }
        return '<div class="icon" style="background-color: ' + v + '"></div>';
      }
    }, {
      data : 'layers'
    }, {
      data : 'cols'
    }, {
      data : 'index'
    }, {
      data : 'note'
    }],
    order: [ [0, 'asc'] ],
    ajax : function(data, callback, settings) {
      var d = $.customParam(data);
      $.ajax({
        dataType : 'json',
        method : 'POST',
        url : 'racks_processing.json',
        data : d,
        success : function(json) {
          var error = json.error || json.sError;
          if (error) {
            alert(error);
            return;
            // _fnLog( oSettings, 0, error );
          }
          settings.json = json;
          callback(json);
        }
      });
    }
  });
  $('#racks tbody').on('click', 'tr', function() {
    if ($(this).hasClass('selected')) {
      $(this).removeClass('selected');
    } else {
      $table.$('tr.selected').removeClass('selected');
      $(this).addClass('selected');
    }
  });

  $(".colorpicker").spectrum({
    showPaletteOnly: true,
    showPalette:true,
    hideAfterPaletteSelect:true
  });
  // 新增处理
  $('#creatediv form').validate({
    rules : {
      id : {
        required : true,
        remote : {
          url : "rack/unused",
          type : "post"
        }
      },
      layers : {
        required : true,
        digits : true,
        min : 1
      },
      cols : {
        required : true,
        digits : true,
        min : 1
      },
      index : {
        required : true,
        digits : true
      }
    },
    messages : {
      id : {
        required : '编号不能为空',
        remote : '编号已使用'
      },
      layers : {
        required : '货架层数不能为空',
        digits: '货架层数必须输入数字',
        min: '货架层数必须大于0'
      },
      cols : {
        required : '每层个数不能为空',
        digits: '每层个数必须输入数字',
        min: '每层个数必须大于0'
      },
      index : {
        required : '货架序号不能为空',
        digits: '货架序号必须输入数字'
      }
    },
    errorClass : 'has-error',
    validClass : 'has-success',
    highlight : function(element, errorClass, validClass) {
      var $c = $(element).closest('div.form-group');
      $c.addClass(errorClass).removeClass(validClass);
    },
    unhighlight : function(element, errorClass, validClass) {
      var $c = $(element).closest('div.form-group');
      $c.removeClass(errorClass).addClass(validClass);
    }
  });
  var addDlg;
  $('#btnAdd').click(function() {
    addDlg = layer.open({
      type : 1,
      title : false,
      zIndex: 100,
      area : '500px',
      closeBtn : true,
      shadeClose : false,
      content : $('#creatediv')
    });
    $('#creatediv form').get(0).reset();
    $('#creatediv form').validate().resetForm();
    $('#add_id')[0].focus();
  });
  $('#creatediv .userdlg-btns .btn-default').click(function() {
    layer.close(addDlg);
  });
  $('#creatediv .userdlg-btns .btn-primary').click(function() {
    if (!$('#creatediv form').valid()) {
      layer.alert('请修正输入错误！');
    } else {
      var data = $('#creatediv form').serializeArray();
      data.push({
        '_method' : 'POST'
      });
      $.ajax({
        url : 'rack',
        method : 'POST',
        data : data,
        success : function(ret) {
          layer.close(addDlg);
          $table.ajax.reload();
        }
      });
    }
  });

  // 编辑处理
  $('#editdiv form').validate({
    rules : {
      layers : {
        required : true,
        digits : true,
        min : 1
      },
      cols : {
        required : true,
        digits : true,
        min : 1
      },
      index : {
        required : true,
        digits : true
      }
    },
    messages : {
      layers : {
        required : '货架层数不能为空',
        digits: '货架层数必须输入数字',
        min: '货架层数必须大于0'
      },
      cols : {
        required : '每层个数不能为空',
        digits: '每层个数必须输入数字',
        min: '每层个数必须大于0'
      },
      index : {
        required : '货架序号不能为空',
        digits: '货架序号必须输入数字'
      }
    },
    errorClass : 'has-error',
    validClass : 'has-success',
    highlight : function(element, errorClass, validClass) {
      var $c = $(element).closest('div.form-group');
      $c.addClass(errorClass).removeClass(validClass);
    },
    unhighlight : function(element, errorClass, validClass) {
      var $c = $(element).closest('div.form-group');
      $c.removeClass(errorClass).addClass(validClass);
    }
  });
  var editDlg;
  var editRack;
  $('#btnEdit').click(function() {
    var data = $table.row('.selected').data();
    if (!data) {
      layer.alert('请选中待更改的货架！');
      return;
    }
    var loadIndex = layer.load();
    $.ajax({
      url : 'rack/' + data.id,
      method : 'GET',
      data : {
        _method : 'GET'
      },
      success : function(ret) {
        layer.close(loadIndex);
        editDlg = layer.open({
          type : 1,
          title : false,
          zIndex: 100,
          area : '500px',
          closeBtn : true,
          shadeClose : false,
          content : $('#editdiv')
        });
        $('#editdiv form').get(0).reset();
        $('#editdiv form').validate().resetForm();
        editRack = ret;
        $('#edit_id').text(editRack.id);
        $('#edit_layers').val(editRack.layers);
        $('#edit_cols').val(editRack.cols);
        $('#edit_index').val(editRack.index);
        $('#edit_color').spectrum('set', editRack.color);
        $('#edit_note').val(editRack.note);
        $('#edit_layers')[0].focus();
      }
    });
  });
  $('#editdiv .userdlg-btns .btn-default').click(function() {
    layer.close(editDlg);
  });
  $('#editdiv .userdlg-btns .btn-primary').click(function() {
    if (!$('#editdiv form').valid()) {
      layer.alert('请修正输入错误！');
    } else {
      editRack.layers = $('#edit_layers').val();
      editRack.cols = $('#edit_cols').val();
      editRack.index = $('#edit_index').val();
      editRack.color = $('#edit_color').val();
      editRack.note = $('#edit_note').val();
      editRack['_method'] = 'PUT';
      $.ajax({
        url : 'rack/' + editRack.id,
        method : 'POST',
        data : editRack,
        success : function(ret) {
          layer.close(editDlg);
          $table.ajax.reload();
        }
      });
    }
  });

  // 删除处理
  $('#btnDel').click(function() {
    var data = $table.row('.selected').data();
    if (!data) {
      layer.alert('请选中待删除的货架！');
      return;
    }
    layer.confirm('确认要删除货架\"' + data.address + '\"？', function(index) {
      $.ajax({
        url : 'rack/' + data.id,
        method : 'POST',
        data : {
          _method : 'DELETE'
        },
        success : function(ret) {
          layer.close(index);
          $table.ajax.reload();
        }
      });
    });
  });


});